# post(url, data, json, headers)
# url 即请求地址，data json 都是请求体，其中 data 可以接收表单，json 等等所有请求体类型，默认类型选择的是表单，要求的数据格式是字典，
# 元组，字节和文件对象，而参数 json 只能接收 json 类型，数据格式是字典
import requests

url = 'http://192.168.252.117/index.php?m=Home&c=User&a=do_login'
login_data = {"username": "13000000000", "password": "123456", "verify_code": "8888"}
res = requests.post(url, login_data)  # 使用位置传参，所以选择的是 data 参数，默认选择的是表单类型，但是可以传字典格式
# 要注意一个误区，关键是看实际情况，比如这里的请求体实际上需求是表单，可以依习惯使用字典格式传给 data 参数，不过它只会将传来的
# 化为表单类型，所以这里并不会报错，不能认为这里发出的请求的请求体是字典（json）类型
print(res.json())

url1 = 'http://192.168.252.117:9527/admin/auth/login'
login_data1 = {"username": "admin123", "password": "admin123"}
res1 = requests.post(url1, json=login_data1)  # 若 data 是缺省值，同时 json 参数被赋值，则发出的请求的请求体是字典（json）类型
# 同时应该了解到，此时 headers 也未被我们赋值，但是这种情况下代码还是会给请求头自动赋值为 {"Content-Type":"application/json"}
print(res1.json())
# 既然 data 参数也能接收 json 类型作为请求体，如何操作见下：
url2 = 'http://192.168.252.117:9527/admin/auth/login'
login_data2 = '{"username": "admin123", "password": "admin123"}'  # 也即在字典格式的请求体外层加引号定义成字符串
res2 = requests.post(url2, data=login_data2, headers={"Content-Type": "application/json"})
print(res2.json())
